# -*- coding: utf-8 -*-
# Gestión de modelo de persistencia de datos de ficheros Pickle.

## vipera, un diseñador de aplicaciones para Python
##     Copyright (C) 2011 Ángel Luis García García
##
##    This program is free software: you can redistribute it and/or modify
##    it under the terms of the GNU General Public License as published by
##    the Free Software Foundation, either version 3 of the License, or
##    (at your option) any later version.
##
##    This program is distributed in the hope that it will be useful,
##    but WITHOUT ANY WARRANTY; without even the implied warranty of
##    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
##    GNU General Public License for more details.
##
##    You should have received a copy of the GNU General Public License
##    along with this program.  If not, see <http://www.gnu.org/licenses/>.

import os
import cPickle

# Clase para guardar objetos en disco.

class persistencia(object):
    '''Serialización de objetos en disco mediante Pickle'''
    def guardar_objeto(self, nombre_fichero):
        '''
        Guarda el objeto pasado como parámetro en
        disco con el nombre nombre_fichero.
        '''
        # Fichero que contendrá el objeto.
        manejador_fichero = open(nombre_fichero,'w')
        # Volcamos el objeto de memoria al fichero.
        cPickle.dump(self, manejador_fichero)
        # Cerramos fichero.
        manejador_fichero.close()

    def cargar_objeto(self, nombre_fichero):
        '''
        Devuelve un objeto guardado en el fichero
        cuyo nombre es nombre_fichero.
        '''
        # Abrimos fichero donde reside el objeto.
        manejador_fichero = open(nombre_fichero,'r')
        # Pasamos el objeto del fichero en disco a memoria.
        objeto = cPickle.load(manejador_fichero)
        # Cerramos el fichero.
        manejador_fichero.close()
        # Devolvemos el objeto.
        return objeto

class wrapper_objeto(persistencia):
    '''Wrapper para estructuras'''
    def __init__(self):
        '''Constructor de clase'''
        self.datos = None
        